import Request from '../../utils/request.js';
import request from '../util.js';

/**
 * 活动相关API
 */
class ActivityApi {
  /**
   * 获取活动详情信息
   * @param {number} activityId 活动ID
   * @returns {Promise} 返回活动详情
   */
  static async getActivityInfo(activityId) {
    return Request.get(`/pile/activity/info`, {
      activityId
    });
  }

  /**
   * 获取活动列表
   * @param {Object} params 查询参数
   * @returns {Promise} 返回活动列表
   */
  static async getActivityList(params = {}) {
    return Request.get('/pile/activity/list', params);
  }

  /**
   * 参与活动
   * @param {number} activityId 活动ID
   * @param {Object} participateData 参与数据
   * @returns {Promise} 返回参与结果
   */
  static async participateActivity(activityId, participateData) {
    return Request.post(`/pile/activity/participate/${activityId}`, participateData);
  }

  /**
   * 获取活动参与状态
   * @param {number} activityId 活动ID
   * @returns {Promise} 返回参与状态
   */
  static async getParticipateStatus(activityId) {
    return Request.get(`/pile/activity/participate/status/${activityId}`);
  }

  /**
   * 获取活动商品列表
   * @param {number} actiproductIdvityId 活动ID
   * @returns {Promise} 返回商品信息
   */
  static async getActivityProduct(productId) {
    return Request.get(`/pile/activity/product/${productId}`);
  }

  /**
	 * 查询小区限购状态
	 * @param {string} plotName - 小区名称
	 * @param {number} latitude - 纬度
	 * @param {number} longitude - 经度
	 * @returns {Promise} 限购状态信息
	 */
	static async checkPlotLimit(data) {
		return Request.get('/pile/activity/plot/limit', data);
	}

	/**
	 * 搜索小区（通过后端代理百度地图API）
	 * @returns {Promise} 小区搜索结果
	 * @param plotName
	 * @param lat
	 * @param lon
	 */
	static async searchCommunities(plotName, lat, lon) {
		return Request.get('/pile/activity/plot/search', {
			plotName,
			lat,
			lon
		});
	}

	/**
	 * 初始化分发
	 * @param {number} activityId - 活动ID
	 * @returns {Promise} 初始化结果
	 */
	static async distributeInit(activityId) {
		return Request.get('/pile/activity/distribute/init', {
			activityId
		});
	}

  /**
   * 分页获取FAQ列表
   * @param {Object} params 查询参数
   * @param {number} params.type FAQ类型，默认为1
   * @param {number} params.pageNo 页码，从1开始
   * @param {number} params.pageSize 每页条数
   * @returns {Promise} 返回FAQ列表
   */
  static async getFaqList(params = {}) {
    const { type = 1, pageNo = 1, pageSize = 10 } = params;
    return Request.get('/api/faq/page', {
      type,
      pageNo,
      pageSize
    });
  }

  /**
   * 提交合作申请
   * @param {Object} data 合作申请数据
   * @returns {Promise}
   */
  static async applyCooperation(data) {
    return Request.post('/api/cooperation/apply/create', data);
  }
}

export default ActivityApi;